package com.jinmdz.fmis.api.model.rockey;

import com.jinmdz.fmis.common.util.StringUtil;
import com.jinmdz.fmis.core.base.BaseBean;

/**
 * 加密狗秘钥内容
 * 为了能够识别到秘钥信息，特地参考C#定义类进行定义
 * 非代码规范定时实体类
 *
 * @author LiCongLu
 * @date 2020-04-16 15:55
 */
public class KeyContent extends BaseBean {
    /**
     * 规则版本号
     */
    public int RuleVersion;

    /**
     * 硬件key编码，临时授权和开发授权可不提供此参数，其他授权必须提供
     */
    public String USBKeyNumber;

    /**
     * 0：客户试用版授权，1：客户正式版授权，2：开发版授权，3：临时授权
     */
    public Integer AuthorizationType;

    /**
     * 软件试用到期日期，除软件正式版外，其他授权模式必须提供此参数。
     */
    public String DueDate;
    /**
     * 客户单位名称
     */
    public String CustomerName;
    /**
     * 客户单位编码
     */
    public String CustomerUnitNumber;

    /**
     * 获取授权信息
     *
     * @param
     * @return
     * @author LiCongLu
     * @date 2020-04-16 15:58
     */
    public String getResultString() {
        String res = "";
        switch (AuthorizationType) {
            case 0:
                // 用户试用版授权
                res = StringUtil.format("用户试用期版授权:授权日期截止到【{0}】，授权给用户【{1}】，用户单位编码为【{2}】", DueDate, CustomerName, CustomerUnitNumber);
                break;
            case 1:
                // 用户正式版
                res = StringUtil.format("用户正式版授权:授权日期【永久】，授权给用户【{0}】，用户单位编码为【{1}】", CustomerName, CustomerUnitNumber);
                break;
            case 2:
                // 开发授权版
                res = StringUtil.format("开发授权版:授权日期截止到【{0}】，授权给用户【{1}】，用户单位编码为【{2}】", DueDate, CustomerName, CustomerUnitNumber);
                break;
            case 3:
                // 临时授权版
                res = StringUtil.format("临时授权版:授权日期截止到【{0}】，授权给用户【{1}】，用户单位编码为【{2}】", DueDate, CustomerName, CustomerUnitNumber);
                break;
            default:
                res = StringUtil.format("未识别的授权码【{0}】", String.valueOf(AuthorizationType));
                break;
        }
        return res;
    }
}
